const path = require("path");
module.exports = {
  // 区分打包环境与开发环境
  // process.env.NODE_ENV==='production'  (打包环境)
  // process.env.NODE_ENV==='development' (开发环境)
  publicPath: process.env.NODE_ENV === "production" ? "" : "/",

  // 基本路径
  // publicPath: '/',//从 Vue CLI 3.3 起baseUrl已弃用，请使用publicPath
  // 输出文件目录
  outputDir: process.env.NODE_ENV === "production" ? "dist" : "devdist",
  // eslint-loader 是否在保存的时候检查
  lintOnSave: false,
  // use the full build with in-browser compiler?
  // https://vuejs.org/v2/guide/installation.html#Runtime-Compiler-vs-Runtime-only
  //compiler: false,
  // webpack配置
  // see https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md
  chainWebpack: config => {
    const svgRule = config.module.rule('svg')
    // 清除已有的所有 loader,如果你不这样做，接下来的 loader 会附加在该规则现有的 loader 之后。
    svgRule.uses.clear()
    // 添加要替换的 loader
    svgRule.use('svg-sprite-loader').loader('svg-sprite-loader')
    .options({
        symbolId: 'icon-[name]',
        include: ["./src/icons"]
    })
  },
  configureWebpack: config => {
    // webpack配置，值位对象时会合并配置，为方法时会改写配置
    config.resolve = {
      extensions: [".js", ".vue", ".json"], //文件优先解析后缀名顺序
      alias: {
        'vue':'vue/dist/vue.js',
        "@": path.resolve(__dirname, "./src"),
        "@c": path.resolve(__dirname, "./src/components")
      } // 别名配置
    };
  },
  // vue-loader 配置项
  // https://vue-loader.vuejs.org/en/options.html
  //vueLoader: {},
  // 生产环境是否生成 sourceMap 文件
  productionSourceMap: false,
  // css相关配置
  css: {
    // 是否使用css分离插件 ExtractTextPlugin
    extract: true,
    // 开启 CSS source maps?
    sourceMap: false,
    // css预设器配置项
    loaderOptions: {
      sass: {
        prependData: `@import "./src/styles/main.scss";`
      }
    },
    // 启用 CSS modules for all css / pre-processor files.
    modules: false
  },
  // use thread-loader for babel & TS in production build
  // enabled by default if the machine has more than 1 cores
  parallel: require("os").cpus().length > 1,
  // 是否启用dll
  // See https://github.com/vuejs/vue-cli/blob/dev/docs/cli-service.md#dll-mode
  // dll: false,
  // PWA 插件相关配置
  // see https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-pwa
  //   pwa: {},
  // webpack-dev-server 相关配置
  devServer: {
    // open: process.platform === 'vue',
    host: "0.0.0.0",
    port: 8080,
    open: true,
    hot: true,
    https: false,
    hotOnly: false,
    proxy: {
      "/devApi": {
        // 此处的写法，目的是为了 将 /api 替换成 https://www.baidu.com/
        target: "http://www.web-jshtml.cn/productapi/token",
        // 允许跨域
        changeOrigin: true,
        pathRewrite: {
          "^/devApi": ""
        }
      }
    }, // 设置代理
    inline: true,
    overlay: {
      warnings: true,
      errors: true
    },
    before: app => {}
  },
  // 第三方插件配置
  pluginOptions: {
    // ...
  }
};
